1. Field of Invention
This invention is generally directed to representing information derived from analyzing an information processing system, such as a suite of software programs. More particularly, this invention is directed to a system and apparatus for analyzing and displaying information about characteristic-dependent portions of an information processing system.
2. Description of Related Art
As has been widely discussed in the popular media, the impending century change, i.e., the change in years in which the first two digits of the year number are xe2x80x9c19xe2x80x9d to years in which the first two digits of the year number are xe2x80x9c20xe2x80x9d, is anticipated to cause many legacy information processing systems to crash. That is, many legacy information processing systems have many date-dependent portions that will not be able to handle the century change. Legacy information processing systems include many large suites, software portfolios or software applications that were written in programming languages that are no longer commonly used. When these legacy software applications were written, both processing resources and memory were extremely expensive. Accordingly, to reduce both processing costs and memory usage, many legacy software applications encoded year information in date-dependent portions of the software applications using only the last two digits of the year. In particular, if a date can be represented as xe2x80x9cCCYYMMDDxe2x80x9d where xe2x80x9cCCxe2x80x9d is the century information, xe2x80x9cYYxe2x80x9d is the year of the century information, xe2x80x9cMMxe2x80x9d is the month of the year information and xe2x80x9cDDxe2x80x9d is the day of the month information, many legacy software applications encoded only the year information xe2x80x9cYYxe2x80x9d and did not encode the century information xe2x80x9cCCxe2x80x9d. This was considered a proper programming technique at the time, as no one at the time expected these legacy software applications to be used beyond the year 1999.
However, as has been widely reported, many legacy software applications will be used well into the next century. However, because the century information is not encoded into the date information used by such legacy software applications, these programs will assume the year encoded xe2x80x9c00xe2x80x9d is the year xe2x80x9c1900xe2x80x9d rather than the year xe2x80x9c2000xe2x80x9d. This erroneous assumption will cause many data processing errors. If such legacy software applications include billing or accounting programs, many erroneous bills and other erroneous accounting information will be generated.
Accordingly, information system managers charged with maintaining such legacy software applications need to at least update these legacy software applications so that the dates encoded in the date-dependent portions of these software applications include the century information xe2x80x9cCCxe2x80x9d. Currently, there are five popular strategies that can be used to repair such legacy software applications: 1) date field expansion; 2) code correction; 3) windowing; 4) ad hoc repairs; and 5) replacing one or more systems, subsystems or individual programs of the legacy software application. Date field expansion involves adding two digits to all date fields and modifying the code that accesses these date fields. Code correction involves encoding the century information in the original six digits of the date fields and modifying the program statements accordingly. Windowing refers to inserting code around every statement involving dates that imputes the appropriate century, as a function of the current date and window size. Ad hoc strategies include post-processing or reversing the system clock using a 28-year or 100-year windowing time bridge. Furthermore, since repair strategies must be consistent between systems of the legacy software application that use common data, it is impossible to determine the best approach by investigating only one system or subsystem of a large legacy software application that has numerous systems, subsystems, and individual programs.
Due to the passage of time, many of the third-party vendors that created these legacy software applications no longer exist. Therefore, the owner of the legacy software application cannot turn to such third-party vendors to repair the legacy software application. Further complicating the legacy software problem, for those third-party vendors that are still in business, most of the programmers who created the legacy software applications have retired or otherwise no longer work for the third-party vendor. Moreover, even if one or more of the particular programmers that created a particular legacy software application can be located, it is unlikely they retain any detailed knowledge about programs written 25 to 35 years previously. Thus, while selection of a particular repair strategy could be easily made and a particular tactical plan for implementing the repair strategy could be developed given sufficient detailed information or an intuitive understanding of the operation of the legacy software application, it is extremely unlikely that an information system manager will have access to such detailed information or to a person having an intuitive feel for the operation of the legacy software application. Furthermore, generating sufficient information to determine the appropriate strategy and to prepare the tactical implementation of the appropriate strategy through a detailed inspection of the source code of the legacy software application is too time consuming and expensive for all but the smallest legacy software applications.
Thus, a tool is needed that can analyze a legacy software application and extract and display information about the date-dependent portions of the legacy software application, and that can display such information in a way that allows an information system manager to gain an intuitive feel for the legacy software application and to determine and implement the appropriate repair strategy.
This invention provides a software visualization technique for visually analyzing an existing software application requiring application-wide revisions and for identifying programming consequences resulting from the required revisions.
This invention also provides a software visualization system that displays information about characteristic-dependent portions of a software application.
This invention further provides a software visualization system that allows assessment and strategic planning for determining the extent of the impact of changing a software application and formulating repair strategies.
This invention additionally provides a software visualization system that displays information about the characteristic-dependence of systems, subsystems and individual programs of a software application that allows an intuitive understanding of the structure of the software application.
These and other features and advantages of this invention are described in or are apparent from the following detailed description of the preferred embodiments.